#include <iostream>

// 定义一个外部变量
extern double warming;

// 函数原型
void update(double dt);
void local();

using std::cout;
using std::endl;

void update(double dt)
{
    // 声明来自外部的全局变量 warming
    extern double warming;
    warming += dt;
    cout << "Updating global warming to:" << warming << endl;
}

void local()
{
    // 这个warming变量是内部变量,将会"屏蔽"外部全局变量warming
    double warming = 0.8;
    
    // 默认情况下将会初始化为0
    static int count;
    //这个变量虽然只会在代码块中(也就是本函数)可用,但是static变量将会在代码块不活动的时候仍然存在

    cout << "Local warming = " << warming << endl;
    // 使用 ::warming 显示指定使用外部全局变量warming(当内部变量有一个同名的warming)
    cout << "But Global warming is = " << ::warming << endl;

    cout << "Static ++count is = " << ++count << endl;
}
